ÿþ--[[ x: JX-300-02 Tðy: StackerLocRequest \O€ÿHAN åegÿ2025-1-29 eQãSýQpeÿ main ŸRý€ô‹f: “eQ { "requestPk":"PK000", "contNo":"FB-0029", "taskNo":"TA241017-00001", "contNo2":"", "taskNo2":"", "curPos":"L003", "isFull":1, "clientCode":"WCS", "reqTime":"2024-10-18 8:0:0" } ØSôf°‹U_: --]] wms_task = require( "wms_task" ) wms_op = require( "wms_operation" ) wms_wh = require( "wms_wh" ) jx_base = require( "jx_base" ) wms_alg = require( "wms_base_algorithm" ) -- 9hncûN¡R÷S~b0R\ON ÿŠb\ON„v¶r`¾‹n:N 1 local function restart_operation( strLuaDEID, task_code, cntr_code, to_loc_code ) local nRet, strRetInfo local task nRet, task = wms_task.GetInfo( strLuaDEID, task_code ) -- ‚YœgûN¡R NX[(WbúQ• ÿ ԏÞV if ( nRet ~= 0 ) then return 1, "·ƒÖSûN¡Rù[aŒ1Y%!"..task end local to_loc nRet, to_loc = wms_wh.GetLocInfo( to_loc_code ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), '·ƒÖS'MOáOo`1Y%! '..to_loc_code ) end local operation nRet, operation = wms_op.GetInfo( strLuaDEID, task.op_code ) if ( nRet ~= 0 ) then return 1, "·ƒÖS\ONù[aŒ1Y%!"..operation end if ( operation.bs_state ~= 6 ) then return 1, "ûN¡R'"..task_code.."'„v\ON¶r` NI{ŽN'I{…_', Ný€gbLˆÍ‘/T\ON!" end lua.Debug(strLuaDEID, debug.getinfo(1), "operation", operation) local strCondition = "S_CODE = '"..task.op_code.."'" local strUpdateSql = "N_B_STATE = 1, S_B_STATE = 'gbLˆ', S_END_WH = '"..to_loc.wh_code.."'," strUpdateSql = strUpdateSql.."S_END_AREA = '"..to_loc.area_code.."', S_END_LOC = '"..to_loc_code.."'" nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Operation", strCondition, strUpdateSql ) if ( nRet ~= 0 ) then return 2, "ôf°e0\ON0¶r`1Y%!"..strRetInfo end local task_source if (operation.op_def_name == "è]fúQ“^" or operation.op_def_name == "è]feQ“^") then task_source = "è]f" else task_source = "è]ƒl" end -- Rú^“¿~,dЏûN¡R local task = m3.AllocObject(strLuaDEID,"Task") -- Rú^“:g,dЏûN¡R task.op_code = operation.code -- \ONx task.op_name = operation.op_def_name task.source_sys = task_source new_task.factory = operation.factory -- å]‚S new_task.type = wms_base.Get_nConst(strLuaDEID, "ûN¡R{|‹W-X›W:geQ“^,dЏ") new_task.cntr_code = cntr_code new_task.bs_no = operation.bs_no -- w¹p new_task.start_wh_code = task.end_wh_code new_task.start_area_code = task.end_area_code new_task.start_loc_code = task.end_loc_code -- È~¹p new_task.end_wh_code = to_loc.wh_code new_task.end_area_code = to_loc.area_code new_task.end_loc_code = to_loc_code new_task.schedule_type = wms_base.Get_nConst(strLuaDEID, "Œ¦^{|‹W-X›W:g") -- ¾‹nŒ¦^{|‹W -- È~¹p'MO R• new_task.bs_state = 2 -- Rú^1\/fgbLˆ¶r` nRet, new_task = m3.CreateDataObj(strLuaDEID, new_task) if (nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1),"Rú^X›W:gûN¡R1Y%!"..new_task) end -- 'MO ReQ“^• nRet, strRetInfo = wms.wms_LockLocation(strLuaDEID, new_task.end_loc_code, wms_base.Get_nConst( strLuaDEID, "•{|‹W-eQ“^•" ), new_task.code, new_task.op_code, new_task.op_name ) if (nRet ~= 0) then return 1, "wms_LockLocation 1Y%!"..strRetInfo end return 0, new_task.code end --[[ —‰€Q†„vàQ*N˜: 1# WCSO NO͑ Y3u÷‹ ÿÔk‚Y3u÷‹†NN!k WMS Ù~ƒ[ԏÞV¡l6e0Rˆmo`? ]] function LocRequest( strLuaDEID ) local nRet, strRetInfo local body -- ·ƒÖS¥cãS OeQ„vpenc nRet, body = m3.GetSysDataJson(strLuaDEID) -- “eQpencÀhåg local cntr_num = 1 local cntr_code1 = body.contNo local task_code1 = body.taskNo local cntr_code2 local task_code2 = '' local cur_pos,ret_loc local roadway local operation if ( cntr_code1 == nil or cntr_code1 == '') then mobox.stopProgram( strLuaDEID, "contNoÅ_{˜ g